home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / utility / 647 / on_line / manual.txt < prev    next >
Text File  |  1992-10-03  |  43KB  |  2,075 lines

  1. ARRAYFILL n&(),n&                                      p. 30
  2.  
  3. In: n&() - a number array.
  4.     n&   - a number.    
  5.  
  6. Result: Sets every element of n&() = n&.
  7.  
  8. DIM n&(20)                    ! dimension a word array
  9. ARRAYFILL n&(),70             ! set every element of n&() = 70
  10.  
  11. *****
  12. ASC(s$)                                                p. 32
  13.  
  14. In: s$ - a string$.
  15. Out: the ASCII code of the first character in s$.
  16.  
  17.  
  18. s$="Fish"             ! set s$ = to "Fish"
  19. '
  20. PRINT ASC(s$)
  21.  
  22. 70                    ! the ASCII code of "F" is 70
  23.  
  24. *****
  25. BIN$(n%,l&)                                            p. 34
  26.  
  27. In: n% - an integer.
  28.     l& - length of string returned.
  29.  
  30. Out: a string  
  31.  
  32. Converts the number n% to binary and returns it as a string of
  33.     length l&.
  34.  
  35. s$=BIN$(4,8)
  36. PRINT s$
  37.  
  38. 00000100
  39.  
  40. PRINT BIN$(5)
  41.  
  42. 101
  43.  
  44. *****
  45. CFLOAT(n%)                                             p. 38
  46.  
  47. In: an integer.
  48. Out: a floating point number.
  49.  
  50.  
  51. PRINT CFLOAT(12)
  52.  
  53. 12
  54.  
  55. PRINT CFLOAT(12)+.17
  56.  
  57. 12.17
  58.  
  59.  
  60. *****
  61. CHR$(n&)                                               p. 32
  62.  
  63. In: an integer
  64. Out: 1 character
  65.  
  66. PRINT CHR$(71)
  67.  
  68. G                      ! the ASCII code for "G" is 71
  69.  
  70. *****
  71. CINT(n)                                                p. 38
  72.  
  73. In: a floating point number.
  74. Out: a rounded integer.
  75.  
  76.  
  77. PRINT CINT(23.5)
  78.  
  79. 24
  80.  
  81. PRINT CINT(23.4)
  82.  
  83. 23
  84.  
  85. *****
  86. CVD(s$)                                                p. 36
  87.  
  88. In: an 8 character string.
  89. Out: a floating point number.
  90.  
  91. Used to convert an 8 character string to a floating point number.
  92.  
  93. *****
  94. CVF(s$)                                                p. 36
  95.  
  96. In: a 6 character string.
  97. Out: a floating point number.
  98.  
  99. Used to convert a 6 character string to a floating point number.
  100.  
  101. *****
  102. CVI(s$)                                                p. 36
  103.  
  104. In: a 2 character string.
  105. Out: an integer.
  106.  
  107. Used to convert a 2 character string to an integer.
  108.  
  109. *****
  110. CVL(s$)                                                p. 36
  111.  
  112. In: a 4 character string.
  113. Out: an integer.
  114.  
  115. Used to convert a 4 character string to an integer.
  116.  
  117. *****
  118. CVS(s$)                                                p. 36
  119.  
  120. In: a 4 character string.
  121. Out: a floating point number.
  122.  
  123. Used to convert a 4 character string to a floating point number.
  124.  
  125. *****
  126. DFREE(n&)                                              p. 152
  127.  
  128. In: n& - a drive number.
  129. Out: free bytes on drive n&
  130.  
  131. n&=0  Current drive
  132. n&=1  A:\
  133. n&=3  C:\
  134.  
  135. PRINT DFREE(0)     ! returns the free space on the current partition
  136.  
  137. *****
  138. DIM s$(1000)                                           p. 28
  139.  
  140.  
  141. DIM s$(20)     ! dimensions a string array, index 0 to 20
  142.  
  143. *****
  144. DIM?(x())                                              p. 28
  145.  
  146.  
  147. DIM n(20)        ! dimension a floating point array, index 0 to 20
  148. '
  149. PRINT DIM?(n())
  150. 21               ! 21 elements are in n()
  151.  
  152. *****
  153. DPEEK(n)                                               p. 40
  154.  
  155. In: RAM address.
  156. Out: 2 bytes beginning from the RAM address n.
  157.  
  158. NOTE: Use even addresses only.
  159.  
  160. *****
  161. DPOKE a,n                                              p. 40
  162.  
  163. In: a - a RAM address.
  164.     n - a 2 byte number.
  165.  
  166. Result: writes n to RAM beginning with address a.
  167.  
  168. NOTE: Use even addresses only.
  169.  
  170. *****
  171. EXIT IF TRUE                                           p. 213
  172.  
  173.    Used to exit a loop.
  174.  
  175. a&=-1
  176. b&=0
  177. DO
  178.   a&=b&+1
  179.   b&=a&
  180.   EXIT IF a&=10
  181. LOOP
  182.  
  183. This loop will be exited when a&=10
  184.  
  185. *****
  186. HARDCOPY                                               p. 189
  187.  
  188.  Sends a screen dump to the printer.
  189.  
  190. *****
  191. HEX$(n%,l&)                                            p. 34
  192.  
  193. In: n% - an integer.
  194.     l& - length of string returned.
  195.  
  196. Out: a string  
  197.  
  198. Converts the number n% to a hexadecimal number and returns
  199.    it as a string of l& length.
  200.  
  201. PRINT HEX$(17)
  202.  
  203. 11
  204.  
  205. n%=17
  206. s$=HEX$(n%,5)
  207. PRINT s$
  208.  
  209. 00011
  210.  
  211. *****
  212. HIDEM                                                  p. 186
  213.  
  214.  Hides the mouse.
  215.  
  216. *****
  217. LEFT$(s$,n&)                                           p. 114
  218.  
  219. In: s$ - a string.
  220.     n& - the number of characters to return.
  221.  
  222. Out: the first n& characters of s$.
  223.  
  224. PRINT LEFT$("12345",3)
  225.  
  226. 123
  227.  
  228. PRINT LEFT$("abcd")
  229.  
  230. a
  231.  
  232. *****
  233. LEN(s$)                                                p. 140
  234.  
  235. In: a string.
  236. Out: the number of characters in s$, length of s$.
  237.  
  238. PRINT LEN("1234567890")
  239.  
  240. 10
  241.  
  242. *****
  243. LPEEK(n)                                               p. 40
  244.  
  245. In: RAM address.
  246. Out: 4 bytes from RAM beginning from address n.
  247.  
  248. NOTE: Use even addresses only.
  249.  
  250. *****
  251.  
  252. LPOKE a,n                                              p. 40
  253.  
  254. In: a - RAM address.
  255.     n - a 4 byte number.
  256.  
  257. Result: writes n to RAM beginning with address a.
  258.  
  259. NOTE: Use even addresses only.
  260.  
  261. *****
  262. LPRINT                                                 p. 189
  263.  
  264.  Outputs to the printer.
  265.  
  266. LPRINT "Cats";
  267. LPRINT " are cool"
  268.  
  269. Cats are cool        ' is sent to the printer
  270.  
  271. *****
  272. MID$(s$,p&,n&)                                         p. 115
  273.  
  274. In: s$ - a string.
  275.     p& - starting position in s$.
  276.     n& - number of characters to return.
  277.  
  278. Out: n& characters from s$ starting at character p&.
  279.  
  280. PRINT MID$("Fun Sun Run",5,3)
  281.  
  282. Sun
  283.  
  284. PRINT MID$("Fun Sun Run",5)
  285.  
  286. Sun Run
  287.  
  288. *****
  289. MKD$(n)                                                p. 36
  290.  
  291. In: a floating point number.
  292. Out: an 8 character string.
  293.  
  294. Used to convert a floating point number to an 8 character string.
  295.  
  296. *****
  297. MKF$(n)                                                p. 36
  298.  
  299. In: a floating point number.
  300. Out: a 6 character string.
  301.  
  302. Used to convert a floating point number to a 6 character string.
  303.  
  304. *****
  305. MKI$(n)                                                p. 36
  306.  
  307. In: an integer.
  308. Out: a 2 character string.
  309.  
  310. Used to convert an integer to a 2 character string.
  311.  
  312. *****
  313. MKL$(n)                                                p. 36
  314.  
  315. In: an integer.
  316. Out: a 4 character string.
  317.  
  318. Used to convert an integer to a 4 character string. 
  319.  
  320. *****
  321. MKS$(n)                                                p. 36
  322.  
  323. In: a floating point number.
  324. Out: a 4 character string.
  325.  
  326. Used to convert a floating point number to a 4 character string.
  327.  
  328. *****
  329. MOUSE x&,y&,p&                                         p. 183
  330.  
  331. Out: x& - mouse X position.
  332.      y& - mouse Y position.
  333.      p& - mouse button pressed.
  334.  
  335. Result: Returns the mouse X, Y positions in pixels, and
  336.         the mouse button pressed.
  337.  
  338.  0 - no mouse buttons pressed.
  339.  1 - left mouse button pressed.
  340.  2 - right mouse button pressed.
  341.  3 - both mouse buttons pressed.
  342.  
  343. *****
  344. MOUSEK                                                 p. 183
  345.  
  346. Out: the mouse button pressed.
  347.  
  348.  Returns a number (0-3)
  349.  0 - a mouse button was not pressed.
  350.  1 - the left mouse button was pressed.
  351.  2 - the right mouse button was pressed.
  352.  3 - both mouse buttons were pressed.
  353.  
  354. n&=MOUSEK
  355.  
  356. *****
  357. MOUSEX                                                 p. 183
  358.  
  359. Out: mouse position, horizontal.
  360.  
  361. Result: Returns the mouse position in pixels, horizontal.
  362.  
  363.  
  364. n&=MOUSEY
  365.  
  366. *****
  367. MOUSEY                                                 p. 183
  368.  
  369. Out: mouse position, vertical.
  370.  
  371. Result: Returns the mouse position in pixels, vertical.
  372.  
  373.  
  374. n&=MOUSEY
  375.  
  376. *****
  377. OCT$(n%,l&)                                            p. 34
  378.  
  379. In: n% - an integer.
  380.     l& - length of string returned.
  381.  
  382. Out: a string  
  383.  
  384. Converts the number n% to octal and returns it as a string.
  385.  
  386. PRINT OCT$(8)
  387.  
  388. 10
  389.  
  390. n%=8
  391. s$=OCT$(n%,5)
  392. PRINT s$
  393.  
  394. 00010
  395.  
  396. *****
  397. OPTION BASE
  398.  
  399.  
  400. OPTION BASE 0
  401. DIM n&(20)           the first element of n&() is n&(0)
  402.  
  403.  
  404. OPTION BASE 1
  405. DIM n1&(20)          the first element of n1&() is n1&(1)
  406.  
  407. *****
  408. PEEK(n)                                                p. 40
  409.  
  410. In: RAM memory address.
  411. Out: one byte from RAM
  412.  
  413. *****
  414. POKE a,n                                               p. 40
  415.  
  416. In: a - RAM address.
  417.     n - a 1 byte number.
  418.  
  419. Result: writes n to RAM at address a.
  420.  
  421. *****
  422. PRED(s$)                                               p.116
  423.  
  424. In: a string, an integer.
  425. Out: the ASCII character before the first character in s$.
  426.      the integer - 1.
  427.  
  428. PRINT PRED("cows")
  429.  
  430. b
  431.  
  432. PRINT PRED(5)
  433.  
  434. 4
  435.  
  436. *****
  437. RIGHT$(s$,n&)                                          p. 114
  438.  
  439. In: s$ - a string.
  440.     n& - the number of characters to return.
  441.  
  442. Out: the last n& characters of s$.
  443.  
  444. PRINT RIGHT$("12345",3)
  445.  
  446. 345
  447.  
  448. PRINT RIGHT$("abcd")
  449.  
  450. d
  451.  
  452. *****
  453. SETMOUSE x&,y&,p&                                      p. 185
  454.  
  455. IN: x& - pixels, horizontal.
  456.     y& - pixels, vertical.
  457.     p& - the mouse button press.
  458.  
  459. Result:  Positions the mouse at pixel x&,y& and can be 
  460.          used to simulate a mouse button press.
  461.  
  462. *****
  463. SHOWM                                                  p. 186
  464.  
  465.  Turns the mouse on.
  466.  
  467. *****
  468. SPC(n&)                                                p. 120
  469.  
  470. In: n& - a number.
  471.  
  472. Result: Puts n& spaces in a print statement.
  473.  
  474. PRINT "Hi";SPC(2);"there"
  475.  
  476. HI  there
  477.  
  478. *****
  479. STR$(n,l&,r&)                                          p. 33
  480.  
  481. In: n  - a number.
  482.     l& - length of returned string.
  483.     r& - number of decimal places rounded to.
  484.  
  485. Out: a string.
  486.     
  487. Converts the number n& to a string of length l&, and rounded to
  488.          r& decimal places.
  489.  
  490.  
  491. PRINT STR$(456.234501)
  492.  
  493. 456.234501
  494.  
  495. PRINT STR$(456.234501,8,2)
  496.  
  497.   456.23
  498.  
  499. *****
  500. STRING$(n&,s$)                                         p. 120
  501. STRING$(n&,c&)
  502.  
  503. In: n& - length of string returned.
  504.     s$ - the character to be propagated.
  505.     c& - the ASCII code of the character to propagate. 
  506.  
  507. Out: a string.
  508.  
  509. Result: Creates a string n& characters long. The character in s$
  510.         in used to fill the created string.
  511.  
  512. PRINT STRING$(3,"c")
  513. ccc
  514.  
  515. PRINT STRING$(3,99)
  516. ccc
  517.  
  518. *****
  519. SUCC(s$)                                               p. 116
  520.  
  521. In: a string, an integer.
  522. Out: the ASCII character after the first character in s$.
  523.      the number + 1.
  524.  
  525. PRINT SUCC("dogs")
  526.  
  527. e
  528.  
  529. PRINT SUCC(5)
  530.  
  531. 6
  532.  
  533. *****
  534. SWAP a&,b&                                             p. 50
  535. SWAP a$(),b$()
  536.  
  537. In: two variables or arrays of the same type.
  538.  
  539. Result: Swaps the values in a& and b&.
  540.  
  541. a&=20
  542. b&=1
  543. SWAP a&,b&
  544. PRINT a&'b&
  545.  
  546. 20 1             
  547.  
  548. *****
  549. TRIM$(s$)                                              p. 117
  550.  
  551. In: a string.
  552.  
  553. Out: a string. 
  554.  
  555. Result: Trims spaces from the ends of a string.
  556.  
  557. PRINT TRIM$("  Go  ")+"slow"
  558.  
  559. Goslow
  560.  
  561. *****
  562. UPPER$(s$)                                             p. 121
  563.  
  564. In: a string.
  565.  
  566. Out: a string.
  567.  
  568. Result: Changes lower case letters in s$ to upper case.
  569.  
  570. PRINT UPPER$("Fun !!")
  571.  
  572. FUN !!
  573.  
  574. *****
  575. VAL(s$)                                                p. 35
  576.  
  577. In: a string.
  578.  
  579. Out: a number.
  580.  
  581.      Converts a string into a number
  582.  
  583. s$="123sd34"
  584. n&=VAL(s$)
  585. PRINT n&
  586.  
  587. 123                
  588.  
  589. *****
  590. VAL?(s$)                                               p. 35
  591.  
  592. In: a string.
  593.  
  594. Out: a number.
  595.  
  596.      Returns the number of characters that can be converted
  597.          into a number.
  598.  
  599. s$="123er44"
  600. PRINT VAL?(s$)
  601.  
  602. 3                      ! the first 3 characters can be
  603.                        ' converted into a string.
  604.  
  605. *****
  606. CLEAR                                                  p. 48
  607.  
  608. Result: initializes all arrays and variables.
  609.  
  610. DIM s$(1)
  611. s$(0)="Hi Mom"
  612. s$(1)="Hi Dad"
  613. n=2.54
  614. '
  615. CLEAR
  616. '
  617. PRINT s$(0)'s$(1)'n
  618.  
  619.   0
  620.  
  621. *****
  622. CLR n,s$                                               p.48
  623.  
  624. In: a list of variables.
  625.  
  626. Result: the variables in the list are initialized.
  627.  
  628. n=2.75
  629. s$="Cows are big"
  630. '
  631. CLR n,s$
  632. '
  633. PRINT n's$
  634.  
  635. 0
  636.  
  637. *****
  638. ERASE n(),s$()                                         p.48
  639.  
  640. In: a list of arrays
  641.  
  642. Result: the arrays in the list are nuked.
  643.  
  644. DIM s$(10)
  645. DIM n(20)
  646. '
  647. ERASE n(),s$()
  648. '
  649. PRINT n(0)           ! this line produces an error 
  650.                      ' n() does not exist.
  651.  
  652. *****
  653. INSERT n(p&)=n                                         p.54
  654.  
  655. In: n() - an array.
  656.     p&    - an index to the array.
  657.     n     - a value to be inserted in the array.
  658.  
  659. Result: n(p&)   is moved to n(p&+1)
  660.         n(p&+1) is moved to n(p&+2)
  661.         ect.
  662.  
  663. The value in the last element of the array is throw away.
  664. The new value n is inserted at n(p&)
  665.  
  666. *****
  667. DELETE n(p&)                                           p.54
  668.  
  669. In: n() - an array.
  670.     p&  - an index to the array.
  671.  
  672. Result: n(p&+1) is moved to n(p&)
  673.         n(p&+2) is moved to n(p&+1)
  674.         ect.
  675.  
  676. The value in the last element of the array is initialized.
  677.  
  678. *****
  679. DATE$                                                  p.57
  680.  
  681. Result: reads/sets the computer date.
  682.  
  683. MODE 1
  684. PRINT DATE$
  685.  
  686. 03/28/1992         ' month/day/year
  687.  
  688. MODE 0
  689. DATE$="28.03.1992" ' day/month/year
  690.  
  691. *****
  692. TIME$                                                  p.57
  693.  
  694. Result: reads/sets the computer time.
  695.  
  696. PRINT TIME$
  697.  
  698. 18:34:20            ' hours:minutes:seconds
  699.  
  700. TIME$="18:34:20"
  701.  
  702. *****
  703. SETTIME t$,d$                                          p.57
  704.  
  705. Result: sets the time and date.
  706.  
  707. PRINT "Please update the time ";
  708. t$=TIME$
  709. FORM INPUT 20 AS t$
  710. PRINT "Please update the date ";
  711. d$=DATE$
  712. FORM INPUT 20 AS d$
  713. '
  714. SETTIME t$,d$
  715.  
  716. *****
  717. TIMER                                                  p.57
  718.  
  719. Out: returns the length of time since the computer 
  720.      was turned on in 1/200 of a second.
  721.  
  722. This is great for timing whatever.
  723.  
  724. begin_time=TIMER
  725. '
  726. ' some task
  727. '
  728. end_time=TIMER
  729. PRINT (end_time-begin_time)/200 
  730.  
  731. *****
  732. FRE(0)                                                 p.61
  733.  
  734. Result: a "Garbage Collection" is executed, then the amount
  735.         of free RAM is returned.
  736.  
  737. PRINT FRE(0)
  738.  
  739. 62333               ' free ram in bytes
  740.  
  741. *****
  742. ABS(n)                                                 p.88
  743.  
  744. In: a number.
  745. Out: the absolute value (distance from zero) of n.
  746.  
  747. PRINT ABS(-21.7)
  748.  
  749. 21.7
  750.  
  751. n=23.454
  752. PRINT ABS(n)
  753.  
  754. 23.454
  755.  
  756. *****
  757. SGN(n)                                                 p.88
  758.  
  759. In: a number.
  760. Out: if n < 0     return -1
  761.      if n = 0     return  0
  762.      if n > 0     return  1
  763.  
  764. n=0
  765. IF SGN(n)=-1 THEN
  766.   PRINT "n is a negative number"
  767. ELSE IF SGN(n)=0
  768.   PRINT "n is equal to zero"
  769. ELSE
  770.   PRINT "n is a positive number"
  771. ENDIF
  772.  
  773. n is equal to zero
  774.  
  775. *****
  776. ODD(n)                                                 p.89
  777.  
  778. In: a number.
  779. Out: if n = an odd number     return True
  780.      if n = an even number    return False 
  781.      if n = 0                 return False
  782.  
  783. n=20
  784. IF ODD(n)
  785.   PRINT "The number is odd"
  786. ELSE
  787.   PRINT "The number is even or zero"
  788. ENDIF
  789.  
  790. The number is even or zero
  791.  
  792. *****
  793. EVEN(n)                                                 p.89
  794.  
  795. In: a number.
  796. Out: if n = an even number    return True
  797.      if n = an odd number     return False 
  798.      if n = 0                 return True
  799.  
  800. n=20
  801. IF EVEN(n)
  802.   PRINT "The number is odd"
  803. ELSE
  804.   PRINT "The number is even or zero"
  805. ENDIF
  806.  
  807. The number is even or zero
  808.  
  809. *****
  810. INT(n)                                                 p. 90
  811.  
  812. In: a number.
  813. Out: an integer.
  814.      if n = an integer then return n
  815.      if n = a real number then round n down to an integer.
  816.  
  817. PRINT INT(-2.005)
  818. -3
  819.  
  820. PRINT INT(2.99)
  821. 2
  822.  
  823. *****
  824. TRUNC(n)                                               p. 90
  825.  
  826. In: a number.
  827. Out: an integer.
  828.  
  829. Result: any digits to the right of the decimal place are
  830.          chopped off.
  831.  
  832. PRINT TRUNC(12)
  833. 12
  834.  
  835. PRINT TRUNC(-12.99)
  836. -12
  837.  
  838. *****
  839. FIX(n)                                                 p. 90
  840.  
  841. In: a number.
  842. Out: an integer.
  843.  
  844. Result: any digits to the right of the decimal place are
  845.          chopped off.
  846.  
  847. PRINT FIX(12)
  848. 12
  849.  
  850. PRINT FIX(-12.99)
  851. -12
  852.  
  853. *****
  854. FRAC(n)                                                p. 90
  855.  
  856. In: a number.
  857. Out: a number.
  858.  
  859. Result: returns the digits to the right of the decimal.
  860.  
  861. PRINT FRAC(12.123)
  862. 0.123
  863.  
  864. PRINT FRAC(-12.123)
  865. -0.123
  866.  
  867. *****
  868. ROUND(n,dp&)                                           p. 91
  869.  
  870. In: n   - a number.
  871.     dp& - an integer, number of decimal places.
  872.  
  873. Out: a number, n rounded to dp& decimal places.
  874.  
  875. PRINT ROUND(-12.49)
  876. -12
  877.  
  878. PRINT ROUND(12.5)
  879. 13
  880.  
  881. PRINT ROUND(12.4919,3)
  882. 12.492
  883.  
  884. PRINT ROUND(112.4919,-2)
  885. 100
  886.  
  887. *****
  888. MIN(a&,b&,c&)                                          p. 92
  889.  
  890. In: a list of numbers or strings.
  891. Out: a number or string, the smallest in the list.
  892.  
  893. PRINT MIN(2,3,5,1,7)
  894. 1
  895.  
  896. PRINT MIN("a","A") 
  897. A
  898.  
  899. *****
  900. MAX(a$,s$,n$)                                          p. 92
  901.  
  902. In: a list of numbers or strings.
  903. Out: a number or string, the largest in the list.
  904.  
  905. PRINT MIN(2,3,5,1,7)
  906. 7
  907.  
  908. PRINT MIN("a","A") 
  909. a
  910.  
  911. *****
  912. SQR(n)                                                 p. 93
  913.  
  914. In: a non negative number.
  915. Out: a number, the square root of n.
  916.  
  917. PRINT SQR(25)
  918. 5
  919.  
  920. PRINT SQR(0)
  921. 0
  922.  
  923. PRINT SQR(-1)
  924. ERROR MESSAGE
  925.  
  926. *****
  927. EXP(n&)                                                p. 94
  928.  
  929. In: a number.
  930. Out: a number, e to the power of n&
  931.  
  932. PRINT EXP(1)
  933. 2.718281828459
  934.  
  935. PRINT EXP(0)
  936. 1
  937.  
  938. *****
  939. LOG(n)                                                 p. 94
  940.  
  941. In: a number greater than 0.
  942. Out: a number.
  943.  
  944. PRINT LOG(0)
  945. ERROR MESSAGE
  946.  
  947. PRINT LOG(2)
  948. 0.6931471805599
  949.  
  950. *****
  951. LOG10(n)                                               p.94
  952.  
  953. In: a number greater than 0.
  954. Out: a number.
  955.  
  956. PRINT LOG10(0)
  957. ERROR MESSAGE
  958.  
  959. PRINT LOG10(100)
  960. 2
  961.  
  962. *****
  963. SIN(n)                                                 p. 95
  964.  
  965. In: a number, unit - radians
  966. Out: a number, the SIN of n
  967.  
  968. PRINT SIN(PI/2))
  969. 1
  970.  
  971. PRINT SIN(PI)
  972. 0
  973.  
  974. *****
  975. COS(n)                                                 p. 95
  976.  
  977. In: a number, unit - radians
  978. Out: a number, the COS of n
  979.  
  980. PRINT COS(PI/2)
  981. -1
  982.  
  983. PRINT COS(PI)
  984. 0
  985.  
  986. *****
  987. TAN(n)                                                 p. 95
  988.  
  989. In: a number, unit - radians
  990. Out: a number, the TAN of n
  991.  
  992. PRINT TAN(0)
  993. 0
  994.  
  995. PRINT TAN(RAD(90))
  996. ERROR MESSAGE
  997.  
  998. Note: RAD(n) - converts degrees to radians.
  999.  
  1000. *****
  1001. ASIN(n)                                                p. 95
  1002.  
  1003. In: a number
  1004. Out: a number, the ASIN of n, unit - radians.
  1005.  
  1006. PRINT DEG(ASIN(1))
  1007. 90
  1008.  
  1009. PRINT DEG(ASIN(-1))
  1010. -90
  1011.  
  1012. Note: DEG(n) - converts radians to degrees.
  1013.  
  1014. *****
  1015. ACOS(n)                                                p. 95
  1016.  
  1017. In: a number
  1018. Out: a number, the ACOS of n, unit - radians.
  1019.  
  1020. PRINT DEG(ACOS(1))
  1021. 0
  1022.  
  1023. PRINT DEG(ACOS(-1))
  1024. 180
  1025.  
  1026. Note: DEG(n) - converts radians to degrees.
  1027.  
  1028. *****
  1029. ATAN(n)                                                p. 95
  1030.  
  1031. In: a number
  1032. Out: a number, the ATAN of n, unit - radians.
  1033.  
  1034. PRINT DEG(ATN(1))
  1035. 45
  1036.  
  1037. PRINT DEG(ATN(-1))
  1038. -45
  1039.  
  1040. Note: DEG(n) - converts radians to degrees.
  1041.  
  1042. *****
  1043. DEG(n)                                                 p. 95
  1044.  
  1045. In: a number, unit - radians
  1046. Out: a number, unit - degrees
  1047.  
  1048. Converts radians to degrees.
  1049.  
  1050. PRINT DEG(PI)
  1051. 180
  1052.  
  1053. PRINT DEG(PI/2)
  1054. 90
  1055.  
  1056. *****
  1057. RAD(n)                                                 p. 95
  1058.  
  1059. In: a number, unit - degrees
  1060. Out: a number, unit - radians
  1061.  
  1062. Converts degrees to radians.
  1063.  
  1064. *****
  1065. SINQ(n)                                                p. 95
  1066.  
  1067. In: a number, unit - degrees
  1068. Out: a number, the approximate SIN of n
  1069.  
  1070. PRINT SINQ(-90)
  1071. -1
  1072.  
  1073. PRINT SINQ(270)
  1074. -1
  1075.  
  1076. *****
  1077. COSQ(n)                                                p. 95
  1078.  
  1079. In: a number, unit - degrees
  1080. Out: a number, the approximate COS of n
  1081.  
  1082. PRINT COSQ(180)
  1083. -1
  1084.  
  1085. PRINT COSQ(-180)
  1086. -1
  1087.  
  1088. *****
  1089. RND                                                    p. 97
  1090.  
  1091. Out: a random number, 0 =< RND < 1
  1092.  
  1093. *****
  1094. RANDOM(n)                                              p. 97
  1095.  
  1096. In: a number.
  1097. Out: a random integer, 0 =< RANDOM(n) < n
  1098.  
  1099. *****
  1100. RAND(n)                                                p. 97
  1101.  
  1102. In: an integer, 0 <= n <= 65535
  1103. Out: a random integer, 0 <= RAND(n) < n
  1104.  
  1105. *****
  1106. RANDOMIZE(n)                                           p. 97
  1107.  
  1108. In: a number
  1109. Result: the random number generator is initialized 
  1110.         with the number n.
  1111.  
  1112. *****
  1113. DEC n                                                  p. 100
  1114.  
  1115. In: a numeric variable
  1116. Result: n = n - 1
  1117.  
  1118. n&=20
  1119. DEC n&
  1120. PRINT n&
  1121.  
  1122. 19
  1123.  
  1124. *****
  1125. INC n                                                  p. 100
  1126.  
  1127. In: a numeric variable
  1128. Result: n = n + 1
  1129.  
  1130. n&=20
  1131. INC n&
  1132. PRINT n&
  1133.  
  1134. 21
  1135.  
  1136. *****
  1137. ADD n,a                                                p. 101
  1138.  
  1139. In: n - a numeric variable
  1140.     a - a number
  1141.  
  1142. Result: n = n + a
  1143.  
  1144. n&=30
  1145. a&=7
  1146. ADD n&,a&
  1147. PRINT n&
  1148.  
  1149. 37
  1150.  
  1151. ***** 
  1152. SUB n,a                                                p. 101
  1153.  
  1154. In: n - a numeric variable
  1155.     a - a number
  1156.  
  1157. Result: n = n - a
  1158.  
  1159. n&=30
  1160. a&=7
  1161. SUB n&,a&
  1162. PRINT n&
  1163.  
  1164. 23
  1165.  
  1166. *****
  1167. MUL n,a                                                p. 101
  1168.  
  1169. In: n - a numeric variable
  1170.     a - a number
  1171.  
  1172. Result: n = n * a
  1173.  
  1174. n&=20
  1175. a&=5
  1176. MUL n&,a&
  1177. PRINT n&
  1178.  
  1179. 100
  1180.  
  1181. *****
  1182. DIV n,a                                                p. 101
  1183.  
  1184. In: n - a numeric variable
  1185.     a - a number
  1186.  
  1187. Result: n = n / a
  1188.  
  1189. n&=20
  1190. a&=5
  1191. DIV n&,a&
  1192. PRINT n&
  1193.  
  1194. 4
  1195.  
  1196. *****
  1197. ADD(n&,a&)                                             p. 103
  1198.  
  1199. In: n& - an integer numeric variable
  1200.     a& - an integer
  1201.  
  1202. Result: n& = n& + a&
  1203.  
  1204. n&=20
  1205. ADD(n&,3)
  1206. PRINT n&
  1207.  
  1208. 23
  1209.  
  1210. *****
  1211. SUB(n&,a&)                                             p. 103
  1212.  
  1213. In: n& - an integer numeric variable
  1214.     a& - an integer
  1215.  
  1216. Result: n& = n& - a&
  1217.  
  1218. n&=20
  1219. SUB(n&,3)
  1220. PRINT n&
  1221.  
  1222. 17
  1223.  
  1224. *****
  1225. MUL(n&,a&)                                             p. 103
  1226.  
  1227. In: n& - an integer numeric variable
  1228.     a& - an integer
  1229.  
  1230. Result: n& = n& * a&
  1231.  
  1232. n&=20
  1233. MUL(n&,3)
  1234. PRINT n&
  1235.  
  1236. 60
  1237.  
  1238. *****
  1239. DIV(n&,a&)                                             p. 103
  1240.  
  1241. In: n& - an integer numeric variable
  1242.     a& - an integer
  1243.  
  1244. Result: n& = n& / a&
  1245.  
  1246. n&=21
  1247. DIV(n&,3)
  1248. PRINT n&
  1249.  
  1250. 7
  1251.  
  1252. *****
  1253. MOD(n&,a&)                                             p. 103
  1254.  
  1255. In: n& - an integer numeric variable
  1256.     a& - an integer
  1257.  
  1258. Result: n& = n& MOD a&
  1259.  
  1260. n&=21
  1261. MOD(n&,10)
  1262. PRINT n&
  1263.  
  1264. 1
  1265.  
  1266. *****
  1267. INSTR(string$,search_string$,pos&)                     p. 118
  1268.  
  1269. Note: the search is from left to right.
  1270.  
  1271. In: string$ - the string to search.
  1272.     search_string$ - the string search for.
  1273.     pos& - start the search at this character.
  1274.  
  1275. Out: if the search string is not found 
  1276.         return - 0
  1277.      else 
  1278.         return - the position where the search string was found
  1279.  
  1280. PRINT INSTR("abc123","23",3)
  1281. 5
  1282.  
  1283. PRINT INSTR("abc123","23",6)
  1284. 0
  1285.  
  1286. *****
  1287. RINSTR(string$,search_string$,pos&)                     p. 119
  1288.  
  1289. Note: the search is from right to left.
  1290.  
  1291. In: string$ - the string to search.
  1292.     search_string$ - the string search for.
  1293.     pos& - start the search at this character.
  1294.  
  1295. Out: if the search string is not found 
  1296.         return - 0
  1297.      else 
  1298.         return - the position where the search string was found
  1299.  
  1300. PRINT RINSTR("abc123","23",3)
  1301. 0
  1302.  
  1303. PRINT RINSTR("abc123","23",6)
  1304. 5
  1305.  
  1306. *****
  1307. SPACE$(n&)                                             p. 120
  1308.  
  1309. In: an integer.
  1310.  
  1311. Out: a string.
  1312.  
  1313. Result: a string n& characters long is returned.
  1314.         all the characters are spaces.
  1315.  
  1316. s$=SPACE$(3)+"Hi Mom"
  1317. PRINT s$
  1318.    Hi Mom
  1319.  
  1320. *****
  1321. SPC$(n&)                                               p. 120
  1322.  
  1323. In: an integer.
  1324.  
  1325. Out: a n& spaces.
  1326.  
  1327. Result: n& spaces to use with PRINT
  1328.  
  1329. PRINT SPC(3);"Hi Mom"
  1330.    Hi Mom
  1331.  
  1332. *****
  1333. LSET s$=string$                                        p. 122
  1334.  
  1335. In: s$ - a string of specific length.
  1336.     string$ - the string to left justify.
  1337.  
  1338. Result: string$ is placed in s$, the length of s$
  1339.         remains the same, spaces are added to the right
  1340.         if the length of string$ is less then the length
  1341.         of string$.
  1342.  
  1343. s$=SPACE$(4)
  1344. string$="12"
  1345. LSET s$=string$
  1346. PRINT s$;"..."
  1347. PRINT string$;"..."
  1348.  
  1349. 12  ...
  1350. 12...
  1351.  
  1352. ***** 
  1353. RSET s$=string$                                        p. 122
  1354.  
  1355. In: s$ - a string of specific length.
  1356.     string$ - the string to left justify.
  1357.  
  1358. Result: string$ is placed in s$, the length of s$
  1359.         remains the same, spaces are added to the left
  1360.         if the length of string$ is less then the length
  1361.         of string$.
  1362.  
  1363. s$=SPACE$(4)
  1364. string$="12"
  1365. RSET s$=string$
  1366. PRINT s$;"..."
  1367. PRINT string$;"..."
  1368.  
  1369.   12...
  1370. 12...
  1371.  
  1372. ***** 
  1373. INKEY$                                                 p. 126
  1374.  
  1375. Result: reads a key press from the keyboard.
  1376.  
  1377. REPEAT
  1378.   key_press$=INKEY$
  1379.   IF key_press$<>""        ! Only characters "0" - "9"
  1380.     IF key_press$>="0"     ! can be PRINTed to the 
  1381.       IF key_press$<="9"   ! screen.  All others are  
  1382.         PRINT key_press$   ! filtered out.
  1383.       ENDIF                
  1384.     ENDIF
  1385.   ENDIF
  1386. UNTIL key_press$=CHR$(27)  ! <Esc> exits the loop 
  1387.  
  1388. *****
  1389. INPUT s$,n&                                            p. 127
  1390.  
  1391. In: s$ - text or a string.
  1392.     n& - a variable.
  1393.  
  1394. Result: User input from the keyboard.
  1395.  
  1396. INPUT "Enter your name: ",name$
  1397.  
  1398. INPUT "Enter your age: ",age&
  1399.  
  1400. prompt$="Enter your shoe size: "
  1401. INPUT prompt$,shoe
  1402.  
  1403. *****
  1404. LINE INPUT s$,string$                                  p. 129
  1405.  
  1406. In: s$ - text or a string.
  1407.     string$ - a string variable.
  1408.  
  1409. LINE INPUT "Enter last, first name: ",name$
  1410.  
  1411. Note: Allows the user to enter commas in the
  1412.       string entered.
  1413.  
  1414.       Only string variables can be used.
  1415.  
  1416. *****
  1417. FORM INPUT n&,s$                                       p. 130
  1418.  
  1419. In: n& - maximum length of s$.
  1420.     s$ - string the user inputs.
  1421.  
  1422. PRINT "Enter a 5 letter word: ";
  1423. FORM INPUT 5,word$               ! The user can enter only 
  1424.                                  ! five characters. 
  1425.  
  1426. *****
  1427. FORM INPUT n& AS s$                                    p. 130
  1428.  
  1429. In: n& - maximum length of s$.
  1430.     s$ - string the user inputs/edits.
  1431.  
  1432. PRINT "Enter a 5 letter word: ";
  1433. FORM INPUT 5,word$               ! The user can enter only 
  1434. '                                ! five characters. 
  1435. WHILE LEN(TRIM$(word$))<5
  1436.   PRINT "This is not a 5 letter word.  ";
  1437.   PRINT "Please enter a 5 letter word: ";
  1438.   FORM INPUT 5 AS word$ 
  1439. WEND
  1440.  
  1441. *****
  1442. PRINT s$                                               p. 131
  1443.  
  1444. In: numeric or string variables.
  1445.  
  1446. Result: the value or contents of the variable
  1447.         is sent to the screen.
  1448.  
  1449. n=1.2
  1450. s$="Hi Mom"
  1451. s1$="*/*/*/*/"
  1452. PRINT n's$
  1453. PRINT
  1454. PRINT s$;
  1455. PRINT s1$
  1456.  
  1457. 1.2 Hi Mom
  1458.  
  1459. Hi Mom*/*/*/*/
  1460.  
  1461. *****
  1462. LOCATE x&,y&                                           p. 131
  1463.  
  1464. In: x& - an integer, range 1 - 80
  1465.     y& - an integer, range 1 - 25
  1466.  
  1467. Result: the next PRINT instruction will start at
  1468.         this screen/window location.
  1469.  
  1470. LOCATE 1,1
  1471. PRINT "Top Left Corner"
  1472.  
  1473.  
  1474. LOCATE 80,1
  1475. PRINT "Top Right corner"
  1476.  
  1477. *****
  1478. WRITE s$                                               p. 131
  1479.  
  1480. In: numeric or string variables.
  1481.  
  1482. Result: the value or contents of the variable
  1483.         is sent to the screen.
  1484.  
  1485. n&=21
  1486. s$="jkl"
  1487. WRITE "abc","def",21;
  1488. PRINT "ghi"
  1489. WRITE s$
  1490.  
  1491. "abc","def",21ghi
  1492. "jki"
  1493.  
  1494. *****
  1495. PRINT USING mask$,s$,n&
  1496.  
  1497. In: mask$  - a print templete.
  1498.     s$, n& - string or numeric variables.
  1499.  
  1500. mask$="Tape: #,###     Title: \           \     Cost: $##.##"
  1501. tape&=178
  1502. title$="Fishing"
  1503. cost=5.9
  1504. PRINT USING mask$,tape&,title$,cost
  1505.  
  1506. Tape:   178     Title: Fishing           Cost:  $5.90
  1507.  
  1508. *****
  1509. MODE n&                                                p. 136
  1510.  
  1511. In: n& - an integer, range 0 - 3
  1512.  
  1513. Result: sets the way PRINT USING formats real numbers.
  1514.         Also how the DATE$ is displayed.  
  1515.  
  1516. PRINT DATE$
  1517. PRINT USING "##,###.##",21230.93
  1518. '
  1519. MODE 1
  1520. PRINT
  1521. PRINT DATE$
  1522. PRINT USING "##,###.##",21230.93
  1523.  
  1524. 20.04.1990     ! MODE 0   is the default mode
  1525. 21,230.93
  1526.  
  1527. 20/04/1990
  1528. 21,230.93
  1529.  
  1530. *****
  1531. CHDRIVE n&                                             p. 152
  1532.  
  1533. In: n& - a drive number.
  1534. Result: drive n& becomes the current drive.
  1535.  
  1536. n&=0  Current drive
  1537. n&=1  A:\
  1538. n&=3  C:\
  1539.  
  1540. CHDRIVE 1     ! A:\ becomes the current drive
  1541.  
  1542. *****
  1543. CHDRIVE s$                                             p. 152
  1544.  
  1545. In: s$ - a drive letter.
  1546. Result: drive s$ becomes the current drive.
  1547.  
  1548. s$="A"  A:\
  1549. s$="C"  C:\
  1550.  
  1551. path$="A:\FOLDER"
  1552. CHDRIVE LEFT$(path$)     ! A:\ becomes the current drive
  1553.  
  1554. *****
  1555. CHDIR s$                                               p. 152
  1556.  
  1557. In: s$ - a directory path.
  1558. Result: directory s$ becomes the current directory.
  1559.  
  1560. path$="A:\FOLDER"
  1561. CHDRIVE LEFT$(path$)     ! A:\ becomes the current drive
  1562. CHDIR path$              ! A:\FOLDER becomes the current directory
  1563.  
  1564. *****
  1565. DIR$(n&)                                               p. 152
  1566.  
  1567. In: n& - a drive number.
  1568.  
  1569. Out: a string - returns the current directiory for drive n&.
  1570.  
  1571. n&=0  Current drive
  1572. n&=1  A:\
  1573. n&=3  C:\
  1574.  
  1575. path$="A:\FOLDER"
  1576. CHDRIVE LEFT$(path$)     ! A:\ becomes the current drive
  1577. CHDIR path$              ! A:\FOLDER becomes the current directory
  1578.  
  1579. PRINT DIR$(0)            ! print the current directory of the 
  1580.                          ! current drive.
  1581. A:\FOLDER
  1582.  
  1583. *****
  1584. MKDIR s$                                               p. 158
  1585.                                           
  1586. In: a string - the compleate path of a folder.
  1587.  
  1588. Result: a new folder is created on disk.
  1589.  
  1590. MKDIR "C:\FUN.S"         ! folder FUN.S is created on drive C:\
  1591. MKDIR "C:\FUN.S\PETS"    ! folder PETS is created inside folder
  1592.                          ! FUN.S
  1593.  
  1594. *****
  1595. RMDIR s$                                               p. 158
  1596.                                           
  1597. In: a string - the compleate path of a folder.
  1598.  
  1599. Result: a compleatly empty folder is deleted from disk.
  1600.  
  1601. MKDIR "C:FUN.S"          ! folder FUN.S is created on drive C:\
  1602. RMDIR "C:FUN.S"          ! folder FUN.S is deleted.
  1603.  
  1604. *****
  1605. EXIST(s$)                                              p. 159
  1606.  
  1607. In: a string - a compleate file path. 
  1608.  
  1609. Out: true (-1) or false (0)
  1610.  
  1611. IF EXIST("C:\ON_LINE.DAT") THEN
  1612.   PRINT "The file Exists."
  1613. ELSE
  1614.   PRINT "Can't find the file."
  1615. ENDIF
  1616.  
  1617. *****
  1618. OPEN s$,#n&,s1$,n1&                                    p. 160
  1619.  
  1620. In: s$ - a string - the mode used to open the file.
  1621.     n& - a channal number.  Range 0 - 99.
  1622.     s1$ - a string - a compleate file path. 
  1623.           or just the file name if the file is in the 
  1624.           current directory.
  1625.     n1& - a number - optional - the length of a on record 
  1626.           in a random access file.
  1627.  
  1628. Result - a file on disk is opened.
  1629.  
  1630. s$ - opening file modes: 
  1631.  
  1632. "O" - output to the file      "I" input from the file
  1633. "A" - append the file         "U" update the file
  1634. "R" - random access
  1635.  
  1636. *****
  1637. LOF(#N&)                                               p. 162
  1638.  
  1639. In: a number - the chanel number of an open file.
  1640.  
  1641. Out: a number - the size if the file.
  1642.  
  1643. OPEN "U",#1,"C:\A_FILE"      ! the file C:\A_FILE is opened
  1644. length%=LOF(#1)              ! get the size of the file
  1645. CLOSE #1
  1646. PRINT length%                ! print the length/size of the file
  1647.  
  1648. *****
  1649. LOC(#N&)                                               p. 162
  1650.  
  1651. In: a number - the chanel number of an open file.
  1652.  
  1653. Out: a number - the location of the file pointer.
  1654.  
  1655. OPEN "U",#1,"C:\A_FILE"      ! the file C:\A_FILE is opened
  1656. location%=LOC(#1)            ! get the location of the file
  1657. '                            ! pointer.
  1658. CLOSE #1
  1659. PRINT location%              ! print file pointer location
  1660.  
  1661. 0                            ! when a file just opened the 
  1662.                              ! file pointer points to byte 0.
  1663. Note: with OPEN "A",#1,"FILE" the file pointer begins at the
  1664.       end of the file. 
  1665.  
  1666. *****
  1667. EOF(#n&)                                               p. 162
  1668.  
  1669. In: n& - a number - the chanel number of an open file.
  1670.  
  1671. Out: Boolean - true (-1) or false (0)
  1672.  
  1673. OPEN "I",#1,"C:\A_FILE"      ! the file C:\A_FILE is opened
  1674. WHILE NOT EOF(#1)            ! continue if not at end of file
  1675.   LINE INPUT #1,line$        ! get one line from the file
  1676.   PRINT line$                ! print the line on the screen
  1677. WEND
  1678. CLOSE #1
  1679.  
  1680. *****
  1681. CLOSE #n&                                              p. 162
  1682.  
  1683. In: a number - the chanel number of an open file.
  1684.  
  1685. Result: file #n& is closed.
  1686.  
  1687. OPEN "U",#1,"A_FILE"         ! open a file
  1688. TOUCH #1                     ! set the file time and date
  1689. '                            !    to the current time and date.
  1690. CLOSE #1                     ! close the file
  1691.  
  1692. Note: CLOSE  will close all open files.
  1693.  
  1694. *****
  1695. TOUCH #n&                                              p. 162
  1696.  
  1697. In: a number - the chanel number of an open file.
  1698.  
  1699. Result: the file time and date of and open file are set to
  1700.         the current time and date.
  1701.  
  1702. OPEN "U",#1,"A_FILE"         ! open a file
  1703. TOUCH #1                     ! set the file time and date
  1704. '                            !    to the current time and date.
  1705. CLOSE #1                     ! close the file
  1706.  
  1707. *****
  1708. NAME s$ AS s1$                                         p. 164
  1709.  
  1710. In: s$ - a string - an existing file name
  1711.     s1$ - a string - a new file name
  1712.  
  1713. Result: the file s$ is renamed to s1$.
  1714.  
  1715. NAME "FILE.S" AS "COWS.S"   ! the file FILE.S is renamed to
  1716. '                           ! COWS.S
  1717.  
  1718. NAME "C:\FOLDER\A_FILE.S" AS "C:\A_FILE.S"
  1719. '                           ! the file A_FILE.S is moved from
  1720. '                           ! directory  C:\FOLDER\  to  C:\
  1721.  
  1722. *****
  1723. RENAME s$ AS s1$                                       p. 164
  1724.  
  1725. In: s$ - a string - an existing file name
  1726.     s1$ - a string - a new file name
  1727.  
  1728. Result: the file s$ is renamed to s1$.
  1729.  
  1730. RENAME "FILE.S" AS "COWS.S" ! the file FILE.S is renamed to
  1731. '                           ! COWS.S
  1732.  
  1733. RENAME "C:\FOLDER\A_FILE.S" AS "C:\A_FILE.S"
  1734. '                           ! the file A_FILE.S is moved from
  1735. '                           ! directory  C:\FOLDER\  to  C:\
  1736.  
  1737. *****
  1738. KILL s$                                                p. 164
  1739.  
  1740. In: s$ - a string - an existing file name
  1741.  
  1742. Result: a file is deleted from disk
  1743.  
  1744. OPEN "O",#99,"FILE_Z"      ! a file is created in the current
  1745. '                          !     directory
  1746. PRINT #1,"This is file Z"  ! write something to the file
  1747. CLOSE #1    
  1748. '
  1749. KILL "FILE_Z"              ! the file is deleted from disk
  1750.  
  1751. *****
  1752. BSAVE s$,n%,n&                                         p. 165
  1753.  
  1754. In: s$ - a string - the name of a file to be created
  1755.     n% - a number - the starting address of memory to save
  1756.     n& - a number - the number of bytes to save
  1757.  
  1758. Result: a block of memory is saved to disk
  1759.  
  1760. SGET screen$               ! an image of the screen is put 
  1761. '                          !    in screen$
  1762. BSAVE "PIC",V:screen$,LEN(screen$)
  1763. '                          ! the image of the screen is saved
  1764. '                          !   to disk
  1765.  
  1766. *****
  1767. BLOAD s$,n%                                            p. 165
  1768.  
  1769. In: s$ - a string - the name of an existing file
  1770.     n% - a number - the starting address of a memory block
  1771.  
  1772. Result: an entire file is loaded to memory begining at
  1773.         address n%
  1774.  
  1775. SGET screen$               ! an image of the screen is put 
  1776. '                          !    in screen$
  1777. BSAVE "PIC",V:screen$,LEN(screen$)
  1778. '                          ! the image of the screen is saved
  1779. '                          !   to disk
  1780. screen$=STRING$(32000,0)   ! reserve a block of memory
  1781. BLOAD "PIC",V:screen$      ! read in the saved picture
  1782. SPUT screen$               ! send the picture to the screen
  1783.  
  1784. *****
  1785. BGET #n&,n%,n1&                                        p. 165
  1786.  
  1787. In: n& - a number - the chanel number of an open file.
  1788.     n% - a number - the starting address of a memory block
  1789.     n1& - a number - the number of bytes to read
  1790.  
  1791. Result: n1& bytes are read from a file and written to a 
  1792.         block of memory starting at address n%
  1793.  
  1794. GET 100,100,200,200,screen_section$ ! copy a section of the screen
  1795. '                                     to screen_section$
  1796. OPEN "O",#1,"PIC"
  1797. BPUT #1,V:screen_section$           ! write the screen section 
  1798. CLOSE #1                            !   to disk
  1799. '
  1800. OPEN "I",#1,"PIC"
  1801. BGET #1,V:screen_section$           ! read the screen section 
  1802. CLOSE #1                            !   from disk
  1803.  
  1804. *****
  1805. BPUT #n&,n%,n1&                                        p. 165
  1806.  
  1807. In: n& - a number - the chanel number of an open file.
  1808.     n% - a number - the starting address of a memory block
  1809.     n1& - a number - the number of bytes to write
  1810.  
  1811. Result: n1& bytes are written to a file from a 
  1812.         block of memory starting at address n%
  1813.  
  1814. GET 100,100,200,200,screen_section$ ! copy a section of the screen
  1815. '                                     to screen_section$
  1816. OPEN "O",#1,"PIC"
  1817. BPUT #1,V:screen_section$           ! write the screen section 
  1818. CLOSE #1                            !   to disk
  1819.  
  1820. *****
  1821. INPUT$(n&,#n|)                                         p. 168
  1822.  
  1823. In: n& - a number - the number of bytes to be read.
  1824.     n| - a number - the channel number of an open file.
  1825.  
  1826. Result: n& number of bytes are read from an open file or
  1827.         the keyboard.
  1828.  
  1829. OPEN "I",#0,"A_FILE.DAT"
  1830. a_string$=INPUT$(10,#0)     ! the first ten bytes of a file 
  1831. CLOSE #0                    ! are read into a_string$
  1832.  
  1833. REPEAT
  1834. '                             some process
  1835. PRINT "Contiue the process ?"
  1836. UNTIL UPPER$(INPUT$(1))="Y"
  1837.  
  1838. *****
  1839. INPUT #n|,s$                                           p. 169
  1840.  
  1841. In: n| - a number - the channel number of an open file.
  1842.     s$ - a variable
  1843.  
  1844. Result: input from a file.
  1845.  
  1846. OPEN "O",#99,"A_FILE"
  1847. WRITE #99,"one",45,"three"
  1848. CLOSE #99
  1849.  
  1850. OPEN "I",#99,"A_FILE"
  1851. INPUT #99,a$,b&,c$      ! read in three at once
  1852. CLOSE #99
  1853.      or
  1854. OPEN "I",#99,"A_FILE"
  1855. INPUT #99,a$
  1856. INPUT #99,b&            ! read in one at a time
  1857. INPUT #99,c$
  1858. CLOSE #99
  1859.  
  1860. *****
  1861. LINE INPUT #n|,s$                                      p. 169
  1862.  
  1863. In: n| - a number - the channel number of an open file.
  1864.     s$ - a variable
  1865.  
  1866. Result: input from a file. Unlike INPUT #n|,s$  string
  1867.         variables may contain commas. 
  1868.  
  1869. OPEN "O",#99,"A_FILE"
  1870. WRITE #99,"one, two",45,"three"
  1871. CLOSE #99
  1872.  
  1873. OPEN "I",#99,"A_FILE"
  1874. LINE INPUT #99,a$,b&,c$      
  1875. CLOSE #99
  1876.  
  1877. *****
  1878. PRINT #n|,s$                                           p. 170
  1879.  
  1880. In: n| - a number - the channel number of an open file.
  1881.     s$ - any variable.
  1882.  
  1883. Result: Output to a File.
  1884.  
  1885. OPEN "O",#1,"A_FILE"
  1886. PRINT #1,"Output Strings and Numbers."
  1887. PRINT #1,1234
  1888. CLOSE #1
  1889.  
  1890. File Output:
  1891. Output Strings and Numbers.
  1892. 1234
  1893.  
  1894. *****
  1895. PRINT #n|,USING s$,n                                   p. 170
  1896.  
  1897. In: n| - a number - the channel number of an open file.
  1898.     s$ - a string.
  1899.     n  - any variable.
  1900.  
  1901. Result: Formated Output to a File.
  1902.  
  1903. mask$="Tape: #,###     Title: \           \     Cost: $##.##"
  1904. tape&=178
  1905. title$="Fishing"
  1906. cost=5.9
  1907. OPEN "O",#1,"A_FILE"
  1908. PRINT #1,USING mask$,tape&,title$,cost
  1909. CLOSE #1
  1910.  
  1911. File Output:
  1912. Tape:   178     Title: Fishing           Cost:  $5.90
  1913.  
  1914. *****
  1915. WRITE #n|,s$                                           p. 170
  1916.  
  1917. In: n| - a number - the channel number of an open file.
  1918.     s$ - any variable.
  1919.  
  1920. Result: Output to a Disk File.
  1921.  
  1922. OPEN "O",#99,"A_FILE"
  1923. WRITE #99,"A String",23,"another String"24
  1924. CLOSE #99
  1925.  
  1926. File Output:
  1927. "A String",23,"another String"24
  1928.  
  1929. *****
  1930. STORE #n|,s$(),n& TO n1&                               p. 172
  1931.  
  1932. In: n| - a number - the channel number of an open file.
  1933.     s$() - an array of strings.
  1934.     n& - a number - begining of range to be saved to disk.
  1935.     n1& - a number - end of range to be saved to disk. 
  1936.  
  1937. Result: All or part of a string array is saved to disk.
  1938.  
  1939. DIM names$(500)
  1940. names$(0)="Joe"
  1941. names$(1)="Tom
  1942. OPEN "O",#0,"A_FILE"
  1943. STORE #0,names$(),0 TO 2
  1944. CLOSE #1
  1945.  
  1946. File Output:
  1947. Joe
  1948. Tom
  1949.  
  1950. *****
  1951. RECALL #n|,s$(),n& TO n1&,n%                           p. 172
  1952.  
  1953. In: n| - a number - the channel number of an open file.
  1954.     s$() - an array of strings.
  1955.     n& - a number - begining of array range.
  1956.     n1& - a number - end of array range. 
  1957.  
  1958. Out: n% - a numeric variable - the number of lines acually
  1959.           read from the text file.
  1960.  
  1961. Result: A number of lines are read from a text file and 
  1962.         put in a string array.
  1963.  
  1964. *****
  1965. SEEK #n|,n%                                            p. 174
  1966.  
  1967. In: n| - a number - the channel number of an open file.
  1968.     n% - a positive number - new file pointer position.
  1969.  
  1970. Result: The file pointer is repositioned to byte n%
  1971.         of the file.
  1972.  
  1973. OPEN "O",#99,"A_FILE"
  1974. PRINT #99,"111222333444555"
  1975. CLOSE #99
  1976.  
  1977. OPEN "O",#99,"A_FILE"
  1978. SEEK #99,3                 ! position file pointer to byte 3.
  1979. PRINT INPUT$(3,#99)        ! read 3 bytes from the file.
  1980. CLOSE #99
  1981.  
  1982. Screen Output:
  1983. 222
  1984.  
  1985. *****
  1986. RELSEEK #n|,n%                                         p. 174
  1987.  
  1988. In: n| - a number - the channel number of an open file.
  1989.     n% - a number - a reletive adjustment to the file pointer.
  1990.  
  1991. Result: The file pointer is repositioned n% bytes forward
  1992.         or backwards in the file.
  1993.  
  1994. OPEN "O",#99,"A_FILE"
  1995. PRINT #99,"111222333444555"
  1996. CLOSE #99
  1997.  
  1998. OPEN "O",#99,"A_FILE"
  1999. RELSEEK #99,3        ! reposition file pointer 3 bytes forward.
  2000. PRINT INPUT$(3,#99)  ! read 3 bytes from the file.
  2001. CLOSE #99
  2002.  
  2003. Screen Output:
  2004. 222
  2005.  
  2006. *****
  2007. FIELD #n|,n& AS s$,n1& AT (*n#)                        p. 177
  2008.  
  2009. In: n| - a number - the channel number of an open file.
  2010.     n& - a number - the set length of a string variable.
  2011.     s$ - a string variable.
  2012.     n1& - a number - the number of bytes in number variable n#
  2013.     n# - a number variable.
  2014.  
  2015. Result: a templete for a random access record is set up.
  2016.  
  2017. name$="Ted       "
  2018. age&=34
  2019.  
  2020. OPEN "R",#99,"RECORDS",12          ! 12 bytes / record
  2021. FIELD #99,10 AS name$,2 AT(*age&)  ! templete
  2022. PUT #99,1                          ! write record to record
  2023. CLOSE #99                          ! number 1 of the file.
  2024.  
  2025. *****
  2026. PUT #n|,n&                                             p. 178
  2027.  
  2028. In: n| - a number - the channel number of an open file.
  2029.     n& - a number - a record number in the file.
  2030.  
  2031. Result: a record is written to random access file.
  2032.  
  2033. name$="Ted       "
  2034. age&=34
  2035.  
  2036. OPEN "R",#99,"RECORDS",12          ! 12 bytes / record
  2037. FIELD #99,10 AS name$,2 AT(*age&)  ! templete
  2038. PUT #99,1                          ! write record to record
  2039. CLOSE #99                          ! number 1 of the file.
  2040.  
  2041. *****
  2042. GET #n|,n&                                             p. 178
  2043.  
  2044. In: n| - a number - the channel number of an open file.
  2045.     n& - a number - a record number in the file.
  2046.  
  2047. Result: a record is read from a random access file.
  2048.  
  2049. name$="          "
  2050. age&=0
  2051.  
  2052. OPEN "R",#99,"RECORDS",12          ! 12 bytes / record
  2053. FIELD #99,10 AS name$,2 AT(*age&)  ! templete
  2054. GET #99,1                          ! read record number 1
  2055. CLOSE #99                          ! of the file.
  2056.  
  2057. *****
  2058. RECORD #n|,n&                                          p. 178
  2059.  
  2060. In: n| - a number - the channel number of an open file.
  2061.     n& - a number - a record number in the file.
  2062.  
  2063. Result: the record index is set.
  2064.  
  2065. name$="Ted       "
  2066. age&=34
  2067.  
  2068. OPEN "R",#99,"RECORDS",12          ! 12 bytes / record
  2069. FIELD #99,10 AS name$,2 AT(*age&)  ! templete
  2070. RECORD #99,1                       ! set record index to 1.
  2071. PUT #99                            ! write record to record
  2072. CLOSE #99                          ! number 1 of the file.
  2073.  
  2074. ***** 
  2075.